<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promise</title>
</head>
<body>
    <script>
        // 解决回调地狱
        //promise 异步回调方案
        // 三个状态 pending fulfilled rejected;状态一旦变化 就会固化
        console.log(1);
        let p = new Promise((resolve,reject)=>{
            // resolve(); // 固定为成功状态
            // reject(); // 失败状态 
            setTimeout(()=>{
                reject()
            },1000)
        })
        p.then(()=>{
            console.log('成功');
        },()=>{
            console.log('失败');
            // 如果没有改变状态，默认返回promise 是成功态
            // 如果then中抛出异常，或报错，浏览器不会报错，而是直接都reject， 
            // throw new Error();
            return new Promise((resolve,reject)=>{
                resolve();
            })
        }).then(()=>{
            console.log(2);
        },()=>{
            console.log(3);
        })
        //axios 对promise 的封装实现
        axios.get("a.json").then((data)=>{
            console.log(data)
        }).catch((error)=>{
            console.error(error)
        })
    </script>
</body>
</html>